Computer data storage refers to components, devices, and/or recording media used to retain digital data for periods of time. Various types of physical storage devices exist, including memory devices (e.g., semiconductor storage), such as random access memory (RAM) devices and read only memory (ROM) devices, and mass storage devices, such as optical discs and magnetic storage (hard disks, magnetic tapes, etc.), and further types of storage. Such, storage devices may be pooled in various ways to provide higher levels of storage, and higher levels of storage reliability. For example, numbers of storage devices may be combined to form RAID (redundant array of independent disks) arrays, storage area networks (SANs), and other collections of storage.
Storage virtualization is a way of abstracting virtual or logical storage from physical storage. A storage system configured to provide virtual storage may present computers with logical storage locations that the computers may access. The storage system is configured to map the logical storage locations to physical storage locations in physical storage. In one type of virtual storage, a logical storage device may be referred to as a LUN (logical unit number). A computer may have one or more LUNs exposed to it by the storage system that the computer may access. Blocks of data may be addressed in a LUN by offsets or locations within that LUN, which may be referred to as logical block addresses (LBAs).
Various types of data may be stored in virtual storage, including virtual machines. A virtual machine is a software implementation of a physical computer that executes programs similarly to a physical computer. A “system virtual machine” may provide a complete computer platform, including an operating system. Such a system virtual machine may execute one or more programs. A “process virtual machine” is designed to run a single program. The one or more files representative of a virtual machine may be referred to as a virtual hard drive.
Currently, a virtual image corresponding to a virtual machine is typically deployed in an isolated LUN of a virtual storage system. The storage system exposes the LUN to a host computer to enable the host computer to execute the virtual machine. When large numbers of virtual machines (e.g., hundreds, thousands, or more virtual machines) are implemented by a host computer, the host computer expends a large amount of resources to manage and index the virtual machines. For example, one current computer file system is not capable of supporting more than 255 allocated LUNs. Furthermore, a performance of the computer file system may become poor after being allocated 50 LUNs. Thus, managing large numbers of virtual machines is not realistically possible with virtual machines implemented in LUNs according to conventional techniques.